Semiconductor memory and memory controller therefor

ABSTRACT

The present invention relates to AG-AND-type flash memory which reads management information about a plurality of clusters in a short time, wherein a plurality of clusters are arranged as rows of a matrix, and a plurality of banks are arranged as columns. Single management information is stored in specific pages of all blocks belonging to a certain cluster. For instance, management information (having contents C 0 ) about cluster is stored in specific pages of all blocks. Simultaneous access can be made to a plurality of the banks. Upon system startup, the management information is read obliquely such that the management information about cluster is read from bank  0;  . . . , and such that the management information about cluster  3  is read from bank  3.  Accordingly, the management information about a plurality of the clusters can be read in a single access operation.

FIELD OF THE INVENTION

The present invention relates to semiconductor memory and memorycontroller therefor, and particularly, to a technique for reading data.

BACKGROUND OF THE INVENTION

In addition to NAND-type flash memory, NOR-type flash memory, and thelike, AG-AND-type flash memory, in which an assist gate is arrangedadjacent to a floating gate, has been widely used as memory of portableequipment such as a digital camera.

FIG. 5 shows a conceptual configuration of AG-AND-type flash memory(hereinafter simply called AG-AND flash memory). A single block isformed from a plurality of pages (two pages), each of which is a unitfor reading and writing data (each page is formed from a plurality ofsectors), and a single cluster is formed from a plurality of blocks(four blocks). Reading and writing of data can be executed on a per-pagebasis, and deletion of data can be executed on a per-block basis. TheAG-AND flash memory has a plurality of banks (e.g., four banks). Thebanks can be subjected to parallel processing access, and access can bemade simultaneously to the banks.

Each of the pages is formatted into a data area and a control area. Thecontrol area stores address information, a physical-logical addresscorrespondence table, generation information, and management informationabout presence/absence of an invalid flag, all of which pertain to allblocks belonging to a certain cluster in the control area. The reasonfor this is that, in AND-type flash memory, the physical-logical addresscorrespondence table includes a maximum of several percentages ofunavailable areas. An invalid flag in the unavailable area must be setto make a logical address such that a physical address of that area isnot used. For instance, the physical-logical address correspondencetable is a table where, when a physical address 0002h is unavailable,the next physical address 0003h is taken as a logical address 0002h.

As shown in FIG. 6, when all blocks belonging to a certain cluster existacross a plurality of banks (bank 0, bank 1, bank 2, and bank 3),management information 100 about the cluster is stored in a specificlocation (a control area) of a specific page (the first page) of aleading bank (bank 0). When data are read from a certain cluster, accessis first made to bank 0, to thus read management information and acquireaddress information about all the blocks belonging to the cluster. Inaccordance with the thus-acquired address information, reading isperformed simultaneously in relation to all the banks, whereby data areacquired.

Upon start-up of portable equipment such as a digital camera or thelike, management information about all clusters must be read andacquired. However, according to a conventional reading scheme, readingmanagement information about all clusters entails consumption of muchtime, thereby contributing to an increase in the time required toinitialize a system.

Conventionally, as shown in FIG. 6, the management information about acluster is stored in a specific page of a leading bank (bank 0), and ina single operation only one page from a certain bank can be read. Forthis reason, management information about cluster 0 is read throughfirst reading operation; management information about cluster 1 is readthrough second reading operation; and management information aboutcluster 2 is read through third reading operation. Thus, readingoperations must be performed in equal number to the clusters, therebyraising a problem of an increase in processing time as the number ofclusters increases.

The present invention provides a device capable of quickly reading datasuch as management information about clusters.

SUMMARY OF THE INVENTION

The present invention provides semiconductor memory constructed by aplurality of memory cells, comprising:

pages which are units for executing reading and writing of data;

blocks, each of which is formed from a plurality of the pages;

a cluster which is formed from a plurality of the blocks; and

a plurality of banks to which a simultaneous access can be made, wherein

a certain cluster is constructed by a plurality of blocks across aplurality of banks, and an identical set of unique information about thecluster is stored in a specific position on specific pages of each blockconstructing the cluster.

The present invention also provides a memory controller for readingunique information from the semiconductor memory, wherein all blocksforming a single cluster exist in separate banks; and

unique information about a plurality of the clusters is simultaneouslyread by concurrently reading the single, specific pages from a pluralityof the banks when the unique information about a plurality of theclusters is read in accordance with a read command from a higher-levelsystem.

In an embodiment of the present invention, the semiconductor memory isarranged in a matrix pattern. A plurality of clusters “i” (“i”designates a positive integer) are arranged as rows of the matrix, and aplurality of banks “j” (“j” designates a positive integer) are arrangedas columns of the same. When unique information is simultaneously readfrom a plurality of the banks, reading is performed in a diagonaldirection where “i”=“j” is achieved; namely, reading is performedobliquely with respect to the memory cells arranged in the matrixpattern, thereby simultaneously reading the unique information about aplurality of the clusters in a single reading operation.

According to the present invention, unique information, such asmanagement information or the like, about a certain cluster is stored inspecific pages of all blocks constituting a certain cluster (orbelonging to a certain cluster) rather than in a specific page of aspecific block. Access is made to a plurality of the bankssimultaneously, so that the unique information about a plurality of theclusters can be acquired by a single access operation. Consequently,processing time which is required, as startup of a system, to acquireunique information about a plurality of clusters can be shortened.

The invention will be understood more clearly by reference to theembodiments provided below. However, the scope of the invention is notlimited to those embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiment of the present invention will be described indetail based on the following figures, wherein:

FIG. 1 is a configurational block diagram of a digital camera of anembodiment of the present invention;

FIG. 2 is a view for describing a stored state of management informationin the present embodiment;

FIG. 3 is a view for describing a reading method of the presentembodiment;

FIG. 4 is a view for describing another reading method of the presentembodiment;

FIG. 5 is a conceptual configuration diagram of AG-AND flash memory; and

FIG. 6 is a view for describing a stored state of conventionalmanagement information.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Taking a digital camera as an example of portable equipment havingAG-AND flash ROM, an embodiment of the present invention will bedescribed hereinbelow by reference to the drawings.

FIG. 1 is a configurational block diagram of a digital camera 1 of thepresent embodiment. Light of a subject (hereinafter called “subjectlight”), which has formed an image by way of an optical system, such asan optical system including a lens 10, a shutter, and an aperture, isguided to an image sensor 12.

The image sensor 12 is formed from a CCD or a CMOS, and subjectsincoming subject light to photoelectric conversion and outputs aresultant electric signal to a CDS (Correlated Double Sampling)/AGC(Automatic Gain Control) circuit 14 as an image signal. The CDS/AGCcircuit 14 subjects the image signal to sampling and gain adjustment,and then outputs the adjusted image signal to an ADC (Analog-to-DigitalConverter) 16. The ADC 16 converts the analog image signal to a digitalimage signal and outputs the digital image signal to a DSP (DigitalSignal Processor) 18. The DSP 18 subjects the digital image signal toknown image processing, such as gamma correction, edge enhancementprocessing, white balance adjustment processing, compression processing,and the like, and outputs the thus-processed signal to a liquid crystaldisplay (LCD) driver 26 and a memory controller 22. The LCD driver 26outputs to and displays on a LCD 28 the image signal delivered from theDSP 18. A central processing unit (CPU) 20 controls operations of theindividual sections of the digital camera 1. Especially, exposurecontrol and photographing operation control are performed in accordancewith a command from the user. In cooperation with the CPU 20, the memorycontroller 22 controls reading and writing of data from and to AG-ANDflash memory 24.

The AG-AND flash memory 24 stores a control program and image data. TheAG-AND flash memory 24 has a structure including a physical layer, adriver, and a FAT file system. During memory formatting operation, aphysical-logical address correspondence table is prepared, and thethus-prepared table is stored in the driver. Upon startup of the driver,the address correspondence table is copied to RAM of the system, therebypreparing for access. Upon system startup incident to power-on, thememory controller 22 makes an access to the AG-AND flash memory 24, tothus read management information about all clusters and supply theinformation to the CPU 20.

As shown in FIG. 6, management information about a certain cluster hashitherto been stored in a control area of a specific page of a leadingbank (bank 0). However, the memory controller 22 of the presentembodiment writes the management information about the cluster intocontrol areas on specific pages of all blocks belonging to the cluster.

FIG. 2 shows storage areas of cluster management information 100 of thepresent embodiment. The cluster is formed from four blocks, and therespective blocks exist in different banks. On the assumption that thefour blocks are taken as block 0, block 1, block 2, and block 3, block 0is stored in bank 0; block 1 is stored in bank 1; block 2 is stored inbank 2; and block 3 is stored in bank 3. The management information 100is stored in control areas on specific pages of all blocks forming thecluster. When two pages forming a block are assumed to be a first pageand a second page, the specific page corresponds to the first page (anupper page in the drawing). All the sets of management information 100stored in the specific pages of all the blocks belonging to a certaincluster are identical. In relation to, e.g., cluster 0, contents of themanagement information 100 stored in the specific page of the block ofbank 0 are taken as C0, and contents of the management informationstored in specific pages of the blocks of bank 1, bank 2, and bank 3 arealso C0. C0 includes address information, a physical-logical addresscorrespondence table, generation information, and information aboutpresence/absence of an invalid flag, all of which pertain to all blocksbelonging to cluster 0. Similarly, in relation to cluster 1, contents ofthe management information 100 stored in the specific pages of theblocks of bank 0 are assumed to be C1, and contents of the managementinformation 100 stored in the specific pages of the blocks of bank 1,bank 2, and bank 3 are also C1. As mentioned above, when writingmanagement information into the control areas, the memory controller 22of the present embodiment stores single management information into allblocks belonging to a certain cluster; namely, the managementinformation about the certain cluster is caused to exist in a pluralityof the banks in an overlapping manner. In the AG-AND flash memory 24,access can be made simultaneously to bank 0, bank 1, bank 2, and bank 3.Even when access can be made to only one page in each bank, a pluralityof the sets of management information 100 can be read in a single accessoperation, because the management information about the cluster existsin a plurality of the banks.

A data reading method of the present embodiment will be describedhereunder.

FIG. 3 shows an example data reading method. This method is forsimultaneously making access to bank 0, bank 1, bank 2, and bank 3 whenthe management information 100 about a certain cluster 0 is read, tothus read the management information. Since the management information100 about cluster 0 exists in all banks 0 to 3 in an overlapping manner,there is no necessity for first accessing leading bank 0 to read themanagement information 100 therefrom, which has hitherto been required.The management information 100 about cluster 0 can be read from anybank. The same also applies to cluster 1. Even when access is made toany of bank 0, bank 1, bank 2, and bank 3, the management information100 can be read.

FIG. 4 shows another example of the data reading method, showing a casewhere the management information 100 about all clusters is read atsystem startup. In the drawing, cluster 0, cluster 1, cluster 2, cluster3, . . . , cluster 7 [these clusters are assumed to be represented ascluster “i” (“i”=0, 1, 2, 3, . . . )] are assumed to be arranged asrows. Bank 0, bank 1, bank 2, bank 3 [these banks are assumed to berepresented as bank “j” (“j”=0, 1, 2, . . . )] are assumed to bearranged as columns. The management information 100 about cluster 0exists in bank 0, bank 1, bank 2, and bank 3, and contents of themanagement information are taken as C0. Since access can be madesimultaneously to banks 0 to 3, when writing the management information100 about cluster 0, the memory controller 22 writes the managementinformation into all the banks 0 to 3 concurrently. Specifically, themanagement information 100, which has heretofore been written solelyinto bank 0, is written into the other banks 1, 2, and 3, as well.Similarly, the management information 100 about cluster 1 exists acrossall the banks 0 to 3, and contents of the management information aretaken as C1. The management information 100 about cluster 2 also existsacross all the banks 0 to 3, and contents of the management informationare taken as C2. The same also applies to clusters 3 to 7, and contentsof the management information 100 are taken as C3 to C7.

In such a memory configuration, a request for acquiring clustermanagement information is transmitted from the CPU 20 to the memorycontroller 22 upon system startup. When reading the managementinformation 100 about all clusters from the AG-AND flash memory 24 inresponse to this request, the memory controller 22 simultaneously readsdata in a diagonal direction as illustrated. Specifically, elements ofthe matrix are represented as (i, j), and reading a specific page ofbank 0 corresponding to j=0 is performed in relation to cluster 0corresponding to i=0, to thus read the management information 100 havingcontents C0. Reading a specific page of bank 1 corresponding to j=1 isperformed in relation to cluster 1 corresponding to i=1, to thus readthe management information 100 having contents C1. Reading a specificpage of bank 2 corresponding to j=2 is performed in relation to cluster2 corresponding to i=2, to thus read the management information 100having contents C2. Reading a specific page of bank 3 corresponding toj=3 is performed in relation to cluster 3 corresponding to i=3, to thusread the management information 100 having contents C3. Since access canbe made simultaneously to banks 0 to 3, the management information 100about a plurality of the clusters; i.e., cluster 0, cluster 1, cluster2, and cluster 3, can be read in a single access operation, because, asmentioned above, reading is performed diagonally or obliquely.

As in the case of clusters 0 to 3, reading is again performed diagonallyor obliquely in relation to clusters 4 to 7. Specifically, a specificpage of bank 0 is read in relation to cluster 4; a specific page of bank1 is read in relation to cluster 5; a specific page of bank 2 is read inrelation to cluster 6; and a specific page of bank 3 is read in relationto cluster 7, whereby the management information 100 (C4 to C7) aboutclusters 4 to 7 can be read in a single reading operation. In a secondreading operation, cluster 4 corresponds to i=4, and i=4 is replacedwith i=0, so that diagonal reading, where i=j is achieved, is performed.

Conventionally, when all sets of the management information 100 aboutclusters 0 to 7 are read in the related art, the management information100 about cluster 0 is first read from bank 0; the managementinformation 100 about cluster 1 is read second from bank 0; themanagement information 100 about cluster 2 is read third from bank 0;and these reading operations are repeated in subsequent operation. Thus,eight reading operations, which are equal in number to the clusters, arerequired. In contrast, in the present embodiment only two readingoperations are required, so that processing time is significantlyshortened. The memory controller 22 outputs to the CPU 20 the managementinformation, which has been read through the operation set forth.

As mentioned above, the present embodiment utilizes the property of theAG-AND flash memory 24; namely, the ability to store a single set ofmanagement information in all blocks constituting a certain cluster andto make simultaneous access to a plurality of banks, so that managementinformation about a plurality of clusters can be acquired in a singlereading operation. Even in the present embodiment, note that onlyspecific pages of respective banks are merely subjected to reading as inthe related art. Specifically, shortening of processing time is achievedwithout any alterations to the method for reading information from therespective banks.

In the present embodiment, management information is stored across aplurality of banks, and hence the management information can be read ina random manner as an alternative to being read in the diagonaldirection or the oblique direction. For instance, in the embodimentshown in FIG. 4, the management information 100 about cluster 0 is readfrom bank 1; the management information 100 about cluster 1 is read frombank 0; the management information 100 about cluster 2 is read from bank3; the management information 100 about cluster 3 is read from bank 2;and the like. Even when the management information cannot be read fromblocks of bank 0, the information can be read from another bank.Accordingly, the reliability of the system is enhanced. For instance,there is a conceivable technique of setting default reading in adiagonal direction in combination with random reading, providing readerror detection means, and, when the read error detection means hasdetected a read error, retrying reading operation by means of randomreading.

In the present embodiment, all blocks belonging to a certain clusterexist in a single row. Accordingly, management information about aplurality of clusters can be acquired in a single reading operation bymeans of diagonally reading the blocks. To assure this, if an error hasarisen in a certain block, making the entire row to which the blockbelongs unavailable is desirable. More specifically, if an error hasarisen in a certain block, another possibility to make only the blockunavailable and make the other blocks belonging to the same rowavailable just as they are. However, blocks belonging to a certaincluster spread across a plurality of rows, which in turn makes addressmanagement complicated. When an error has arisen in a certain block, theentire row is made unavailable, to thus facilitate address managementand also enable simultaneous acquisition of the sets of managementinformation 100 about a plurality of clusters by means of obliquereading. Moreover, since blocks are made unavailable on a per-row basis,program management on a per-row basis also becomes feasible. Stepwiseloading of a program at system startup also becomes easy.

The present embodiment has illustrated the management information 100,such as address information about all blocks belonging to a cluster anda physical-logical address correspondence table. The present embodimentcan be applied to arbitrary information, so long as the information isunique to clusters (unique information).

The invention has been described in detail with particular reference tocertain preferred embodiments thereof, but it will be understood thatvariations and modifications can be effected within the spirit and scopeof the invention.

PARTS LIST

-   0 bank-   1 bank-   1 digital camera-   0002h bank-   2 bank-   0003h bank-   3 bank-   10 lens-   12 image sensor-   14 circuit-   16 analog to digital converter-   18 digital signal processor-   20 central processing unit-   22 memory controller-   24 AG-AND flash memory-   26 LCD driver-   28 LCD-   100 management information

1. a semiconductor memory constructed by a plurality of memory cells,comprising: pages which are units for executing reading and writing ofdata; blocks, each of which is formed from a plurality of the pages; acluster which is formed from a plurality of the blocks; and a pluralityof banks to which simultaneous access can be made, wherein a certaincluster is constructed by a plurality of blocks across a plurality ofbanks, and an identical set of unique information about the cluster isstored in a specific position on specific pages of each blockconstructing the cluster.
 2. The semiconductor memory according to claim1, wherein the unique information is address information about allblocks constituting a certain cluster, and cluster managementinformation including a conversion table of a physical address and alogical address.
 3. A memory controller for reading unique informationfrom semiconductor memory constructed by a plurality of memory cells,the semiconductor memory including: pages which are units for executingreading and writing of data; blocks, each of which is constructed by aplurality of the pages; a cluster which is constructed by a plurality ofthe blocks; and a plurality of banks to which simultaneous access can bemade, a certain cluster being constructed by a plurality of blocksacross a plurality of banks, and an identical set of unique informationabout the cluster being stored in a specific position on specific pagesof each block constructing the cluster, wherein all blocks forming asingle cluster exist in separate banks; and unique information about aplurality of the clusters is read simultaneously by concurrently readingthe single specific pages from a plurality of the banks when the uniqueinformation about a plurality of the clusters is read in accordance witha read command from a higher-level system.
 4. The memory controlleraccording to claim 3, wherein the semiconductor memory is arranged in amatrix pattern; a plurality of clusters “i” (“i” designates a positiveinteger) are arranged as rows of the matrix, and a plurality of banks“j” (“j” designates a positive integer) are arranged as columns of thesame; and, when unique information is simultaneously read from aplurality of the banks, reading is performed in a diagonal directionwhere “i”=“j” is achieved.
 5. The memory controller according to claim3, wherein the semiconductor memory is arranged in a matrix pattern; aplurality of clusters are arranged as rows of the matrix, and aplurality of banks are arranged as columns of the same; and, when uniqueinformation is simultaneously read from a plurality of the banks,reading is performed obliquely with respect to the matrix pattern.